# !pip install pandas
# !pip install scikit-image
Here we show how to visualize and examine the 3D Nifti images and lung masks in python
import numpy as np # linear algebra
import pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)
import skimage, os
from skimage.morphology import ball, disk, dilation, binary_erosion, remove_small_objects, erosion, closing, reconstruction, binary_closing
from skimage.measure import label,regionprops, perimeter
from skimage.morphology import binary_dilation, binary_opening
from skimage.filters import roberts, sobel
from skimage import measure, feature
from skimage.segmentation import clear_border
from skimage import data
from scipy import ndimage as ndi
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d.art3d import Poly3DCollection
import scipy.misc
import numpy as np
from glob import glob
from skimage.io import imread
BASE_IMG_PATH=os.path.join('..','input')
base_path =
Cell In[24], line 1 base_path = ^ SyntaxError: invalid syntax
from pathlib import Path
BASE_IMG_PATH=Path ("C:\\Users\\peyma\\OneDrive\\Documents\\GitHub\\tets_data_for_3dshow\\")
glob(os.path.join(BASE_IMG_PATH,'3d_images','*'))
['C:\\Users\\peyma\\OneDrive\\Documents\\GitHub\\tets_data_for_3dshow\\3d_images\\IMG_0002.nii.gz', 'C:\\Users\\peyma\\OneDrive\\Documents\\GitHub\\tets_data_for_3dshow\\3d_images\\IMG_0031.nii.gz', 'C:\\Users\\peyma\\OneDrive\\Documents\\GitHub\\tets_data_for_3dshow\\3d_images\\IMG_0059.nii.gz', 'C:\\Users\\peyma\\OneDrive\\Documents\\GitHub\\tets_data_for_3dshow\\3d_images\\IMG_0078.nii.gz', 'C:\\Users\\peyma\\OneDrive\\Documents\\GitHub\\tets_data_for_3dshow\\3d_images\\MASK_0002.nii.gz', 'C:\\Users\\peyma\\OneDrive\\Documents\\GitHub\\tets_data_for_3dshow\\3d_images\\MASK_0031.nii.gz', 'C:\\Users\\peyma\\OneDrive\\Documents\\GitHub\\tets_data_for_3dshow\\3d_images\\MASK_0059.nii.gz', 'C:\\Users\\peyma\\OneDrive\\Documents\\GitHub\\tets_data_for_3dshow\\3d_images\\MASK_0078.nii.gz']
# show some of the files
all_images=glob(os.path.join(BASE_IMG_PATH,'3d_images','IMG_*'))
all_masks = [x.replace('IMG_', 'MASK_') for x in all_images]
print(len(all_images),' matching files found:',all_images[0], all_masks[0])
4 matching files found: C:\Users\peyma\OneDrive\Documents\GitHub\tets_data_for_3dshow\3d_images\IMG_0002.nii.gz C:\Users\peyma\OneDrive\Documents\GitHub\tets_data_for_3dshow\3d_images\MASK_0002.nii.gz
%matplotlib inline
try:
import nibabel as nib
except:
raise ImportError('Install NIBABEL')
test_image=nib.load(all_images[0]).get_fdata()
test_mask=nib.load(all_masks[0]).get_fdata()
fig, (ax1, ax2) = plt.subplots(1,2, figsize = (12, 6))
ax1.imshow(test_image[test_image.shape[0]//2])
ax1.set_title('Image')
ax2.imshow(test_mask[test_image.shape[0]//2])
ax2.set_title('Mask')
Text(0.5, 1.0, 'Mask')
!pip install --upgrade scikit-image
Requirement already satisfied: scikit-image in c:\users\peyma\anaconda3\envs\monai3\lib\site-packages (0.21.0) Requirement already satisfied: numpy>=1.21.1 in c:\users\peyma\anaconda3\envs\monai3\lib\site-packages (from scikit-image) (1.24.3) Requirement already satisfied: scipy>=1.8 in c:\users\peyma\anaconda3\envs\monai3\lib\site-packages (from scikit-image) (1.10.1) Requirement already satisfied: networkx>=2.8 in c:\users\peyma\anaconda3\envs\monai3\lib\site-packages (from scikit-image) (3.1) Requirement already satisfied: pillow>=9.0.1 in c:\users\peyma\anaconda3\envs\monai3\lib\site-packages (from scikit-image) (9.4.0) Requirement already satisfied: imageio>=2.27 in c:\users\peyma\anaconda3\envs\monai3\lib\site-packages (from scikit-image) (2.31.3) Requirement already satisfied: tifffile>=2022.8.12 in c:\users\peyma\anaconda3\envs\monai3\lib\site-packages (from scikit-image) (2023.8.30) Requirement already satisfied: PyWavelets>=1.1.1 in c:\users\peyma\anaconda3\envs\monai3\lib\site-packages (from scikit-image) (1.4.1) Requirement already satisfied: packaging>=21 in c:\users\peyma\anaconda3\envs\monai3\lib\site-packages (from scikit-image) (23.1) Requirement already satisfied: lazy_loader>=0.2 in c:\users\peyma\anaconda3\envs\monai3\lib\site-packages (from scikit-image) (0.3)
#from skimage.util.montage import montage2d
from skimage.util import montage as montage2d
fig, ax1 = plt.subplots(1, 1, figsize = (20, 20))
ax1.imshow(montage2d(test_image), cmap ='bone')
fig.savefig('ct_scan.png')
fig, ax1 = plt.subplots(1,1, figsize = (20, 20))
ax1.imshow(montage2d(test_mask), cmap ='bone')
fig.savefig('lung_mask.png')